group codes in discrete mathematics